Referring to FIG. 1, network communication systems interconnect many users 102 in a network 100. Each user is connected to the network at a port. The network is formed by the interconnection of many nodes where information input at an input port from one user at a source (e.g., 102-1) is passed from node to node (e.g., node 106) through the network 100 to an output port and to another user at a destination (102-N). The information transferred from source to destination is packetized and each node switches incoming packets at incoming ports to outgoing packets at outgoing ports. For ATM networks, the packets are further divided into ATM cells or are natively ATM cells.
Fast packet switches can transfer hundreds of thousands or millions of packets per second at every switch port. Switch sizes range from a few ports to thousands of ports. The term “fast packet switch” includes switches capable of handling both variable length packets and fixed length packets. Fixed length packets are desirable since they simplify switch design. Switches that support the asynchronous transfer mode (ATM), referred to herein as ATM switches, use short, fixed-length packets (cells). ATM switches handle different types of communications services in a single integrated network where such services may include voice, video and data communications. Since voice and video services can tolerate only a limited amount of delay and delay variance through a network, ATM switches are suitable for such services.
Referring to FIG. 2, the ATM standard defines a cell having a size of 53 bytes with a 5 byte header and a 48 byte payload. ATM uses a 24-bit identifier for virtual channels on User-Network Interfaces (UNIs) and 28-bit identifier on Network Network Interfaces (NNIs) However, in the UNI case shown in FIG. 2 the 24-bit identifier is split into two parts: an 8-bit Virtual Path Identifier (VPI) 204 and a 16-bit Virtual Channel Identifier (VCI) 206. This provides some hierarchy in the identifier.
Referring to FIG. 9, cells are processed within the nodes of a network. Each node is an ATM switch that includes one or more ingress line cards, a switch fabric (SF) 904, and one or more egress line cards. An ingress line card is a line card 902 that receives ATM cells relative to the data flow connection whereas an egress line card is a line card 902 that transmits ATM cells relative to the data flow direction. The switch fabric enables the switching of traffic from card to card.
The input sequence of cells in a virtual channel is preserved across switch fabric 904 so that the output sequence of cells on each virtual channel is the same as the input sequence. Cells contain a virtual channel identifier VCI 206 in the cell header that along with VPI 204 identifies the connection to which the cell belongs. Each incoming VPI/VCI identifier 204/206 in the header of each cell is translated in an input controller to a connection identifier that is in turn used to identify the outgoing VPI/VCI on the egress line card. This translation is performed in the input controller typically by table look-up using the incoming VPI/VCI identifier to address a connection table. This connection table also contains a routing field to specify the output port of the switch fabric 904 to which the connection is routed. Other information can be included in the connection table on a per connection basis such as the priority, class of service, and traffic type of the connection.
In an ATM switch, cell arrivals are not scheduled. In a typical operation, a number of cells can arrive simultaneously at different input ports each requesting the same output port. Operations in which requests exceeding the output capacity of the output port are referred to as output contention (or conflict). Since an output port can only transmit a fixed number of cells at a time, for example one, cell at a time, only the fixed number of cells can be accepted for transmission so that any other cells routed to that port must either be discarded or must be buffered in a queue.
Switches 904 have two principle designs, time-division and space division. In a time-division switch fabric, all cells flow through a single communication channel shared in common by all input and output ports. In a space division switch, a plurality of paths are provided between the input and output ports. These paths operate concurrently so that many cells can be transmitted across the switch fabric at the same time. The total capacity of the switch fabric 904 is thus the product of the bandwidth of each path and the number of paths that can transmit a cell concurrently.
When the traffic load exceeds the available system resources in a network, congestion is present and performance degrades. When the number of cells is within the carrying capacity of the network, all cells can be delivered so that the number of cells delivered equals the number of cells sent without congestion. However, if cell traffic is increased to the level that nodes cannot handle the traffic, congestion results.
Congestion can be brought about by several factors. If nodes in a network are too slow to perform the various tasks required of them (queuing buffers, updating tables, etc.), queues build up, even though excess line capacity exists. On the other hand, even if nodes are very fast, queues will build up whenever the input traffic rate exceeds the capacity of the output traffic rate for any particular group of outputs.
If a node has no free buffers for queuing cells, the node must discard newly arriving cells. For packet data traffic, when a cell is discarded, the packet from which the discarded cell came may be retransmitted, perhaps many times, further aggravating the congestion.
Because of congestion and other failures in a network system, specialized Operation and Maintenance (OAM) cells, termed loopback OAM cells (end-end and segment loopback OAM cells), are used in ATM networks to see which nodes in the network are passing cells properly. See, for example, the loopback techniques disclosed in the ITU-T Recommendation I.610, Series I: Integrated Services Digital Network Maintenance Principles, “B-ISDN operation and maintenance principles and functions,” February 1999, Appendix III.
Loopback OAM cells are usually initiated from a point in the connection to another point. The initiator of the OAM flow in an ATM network is called the source. The ultimate destination of an OAM cell that is traveling away from the source is called the loopback point. In other words, the loopback point is the node in a network where an OAM cell stops, turns around, and starts traveling back to the source.
Referring to FIG. 4, there are two types of ATM OAM flows: (1) F4 flow (at the virtual path indicator level; also referred to as a virtual path), and (2) F5 flow (at the virtual channel indicator level; also referred to as a virtual circuit). In addition, there are end-end F4 and F5 flows as well as segment F4 and F5 flows. An end-end flow is one that is only processed at the endpoints of a connection. A segment flow is one that is processed at connection points (nodes) within a segment, including a segment endpoint. A segment is a sub-path of the overall connection path, and it is usually manually specified. F4 flows are identified by a VPI field and F5 flows are identified by VPI/VCI fields in the header of ATM packets.
To understand the significance of F4 and F5 flow, consider the following example. Suppose that a corporation has two sites that connect to a public ATM network, and that at each site the corporation has a network of ATM switches. A virtual path can be constructed between two sites using only a virtual path field (F4 flow). Thus, the switches in the public network would use the VPI field (indicating the F4 flow) as the only field on which to make forwarding decisions. From the point of view of such switches, this is a virtual circuit network based upon the VPI field. The F5 level is of no interest to these public switches, and they neither use the virtual channel indicator (F5 level) nor remap it. Within the corporate sties, however the full combination of the VPI field and VCI field is used for switching. Any traffic that needs to flow between the two sites is routed to a switch that has a connection to the public network, and its VPI field is mapped onto the appropriate value to get the data to the other site. Thus a virtual path acts like a pipe that contains a bundle of virtual circuits, all of which have the same value in the VPI field. The advantage of this approach is that, although there may be thousands or millions of virtual connections across the public network, the switches in the public network behave as if there is only one connection. This means that there needs to be much less connection-state information stored in the line cards of the switches, avoiding the need for large, expensive table of per-VCI information.
FIG. 5 shows the format of an ATM OAM cell. The ATM OAM cell includes function specific fields 518. An F4 flow pertains to Virtual Path Connections (VPC) and it is detected based on the special Virtual Circuit Identifier (VCI) 206 value of “3” in the ATM cell header for “segment” and “4” for “end-end”. A VPC is identified by the Virtual Path Identifier (VPI) 204 value in the ATM cell header. For F4 flows, the VPI value 204 in the OAM cells is the same as that of the VPC to which they belong. F5 flows pertain to Virtual Circuit Connections (VCCs). The VPI 204 and VCI 206 values in an F5 flow are the same as those of the VCC to which they belong. In this latter case, an ATM OAM cell is detected based on the value of 100 or 101, for segment and end-end respectively, in the Payload type identifier (PTI) field 208 contained in the ATM cell header (FIG. 2).
As shown in FIG. 6A, an OAM loopback flow is initiated at a point in the path of the Virtual Connection (VC). The VC can be either a VCC or a VPC. The format of the function specific fields 518 of an OAM loopback cell, as defined in the I.610 specification, are shown in FIG. 7. The function specific fields optionally contain the identifier of the loopback point (FIG. 7; loopback location 706, LLID) and the source identifier (FIG. 7; source ID 708) as well as loopback indication field 702. The special value of all 1's in the LLID field indicates that the loopback point is that of the endpoint of the connection or a segment endpoint. However, an LLID can identify any point in the connection path.
When the OAM loopback cell is initiated, the loopback indication value 702 is set to 1. The OAM cell sent by the source is referred to as the loopback cell in the forward direction (LBF). The loopback point is supposed to detect the OAM cell, set the value in the loopback indication field to 0, and reverse the direction of the cell back to the originator with the correlation ID unchanged. The loopback cell returned from the loopback point is referred to as the loopback cell in the backward direction (LBB). Intermediate points (nodes) between the source and the loopback point in either direction should pass the cell. The source of the OAM cell is supposed to extract the LBB OAM cell and correlate it with one it has sent to determine that the path up to the loopback point is alive. If the source does not receive an OAM loopback cell with the same correlation tag 704 as the one it sent within a configurable period of time, the event is logged. If a configurable number of consecutive OAM loopback cells sent on a connection are not received back at the source, the connection may be declared dead. By systematically varying the loopback point or source along the path of a connection, the point of failure can be detected.
Line cards 902 that perform ATM switching functions have the architecture shown in FIG. 3. There is a data block 302 that lies in the data path. Data block 302 performs all switching and traffic management functions. Further, there is a control block 304 that performs control functions, such as programming the circuit states in the data path block, processing connection setup, or performing maintenance functions. Many systems perform the loopback processing at a loopback point in control block 304 outside of the data path. While functional, such loopback processing techniques are less than desirable because they rely on control block 304 processing resources that should be reserved for implementing control functions. Moreover, because it is the case that the data block 302 and control block 304 are separated as illustrated in FIG. 3, it is possible for data block 302 to remain fully functional even in the case where control block 304 is no longer functioning. If a control block 304 of a line card 902 is dead, data can still flow through the data block 302 of the line card 902. Thus, loss of control block 304 should not result in the interpretation that the line card 902 is not passing data. As such, another drawback with conventional loopback processing techniques is that they do not provide a true source of data liveliness. Such conventional techniques may indicate a node is no longer alive when the control block 304 of a line card 902 in the node is not responsive but data is still flowing through the data block 302 of the line card 902.
Accordingly, there is a need in the art for a loopback implementation that performs functions fully in the data block 302. Furthermore, there is a need in the art for loopback implementations that can test an ATM network with line card resolution. In other words, there exists a need in the art for ATM loopback implementations that can test the integrity of a specific line card of a specific node in the network